Examples of standardized standards of video compression techniques that have been widely used these days include, for example, H.261 and H.263 by the ITU-T (International Telecommunication Union Telecommunication Standardization Sector). Other examples include MPEG (Moving Picture Experts Group)-1, MPEG-2, MPEG-4, etc. by the ISO/IEC (International Organization for Standardization/International Electrotechnical Commission).
Other examples include H.264/MPEG-4 AVC (Advanced Video Coding) by the JVT (Joint Video Team) as a joint team of the ITU-T and the MPEG. Furthermore, the next generation video compression technique is now being studied by the ITU-T, the ISO/IEC, etc.
In general, one of the important elements of a video compression technique is inter-picture prediction using motion compensation intended to compress the amount of information by reducing temporal redundancies between plural consecutive pictures that make up a video.
The inter-picture prediction using motion compensation is a coding method involving (i) detecting the amount and direction of a motion in a reference picture located forward or backward of a current picture that is to be coded in units of a macroblock or a sub-macroblock (hereinafter also referred to as a “macroblock or the like”), (ii) generating a prediction picture, and (iii) coding a difference value between the prediction picture and the current picture.
The information indicating how much and to what direction a macroblock or the like in the current picture to be coded is moved in the reference picture located forward or backward of the current to picture is indicated as a motion vector. In short, the motion vector indicates the pixel position within the reference picture. The reference picture is a picture to be referred to by the current picture.
In order to generate a prediction picture having a sub-pixel accuracy, filtering is applied to the integer pixels. For example, in H.264, a prediction picture having a ½ pixel accuracy is generated using a 6-tap FIR filter (filter coefficients: 1, −5, 20, 20, −5, and 1) that has fixed filter coefficients defined in the standard. Next, a prediction picture having a ¼ pixel accuracy is generated using a 2-tap average-value filter (filter coefficients: ½ and ½) that has fixed filter coefficients defined in the standard.
Here, the filter coefficients for generating such a prediction picture having a sub-pixel accuracy are always the same irrespective of the image characteristics. The generated prediction picture having a sub-pixel accuracy is used when a motion vector indicates a pixel position of a sub-pixel accuracy.
On the other hand, one of the techniques proposed as the next generation video compression technique by the ITU-T, ISO/IEC, etc. is a motion compensation technique for adaptively changing a filter coefficient for generating a prediction picture having a sub-pixel accuracy according to the image characteristics (the motion compensation technique is hereinafter also referred to as “motion compensation using variable coefficients”) (See NPLs 1, 2, and 3). In the motion compensation using variable coefficients, filter coefficient information for use in decoding is included in a coded stream.
The motion compensation using variable coefficients yields a prediction picture according to the image characteristics, which increases the coding efficiency.
In some cases, a stream coded according to a video compression technique, received, and to be decoded includes an error. When an error is included, a video decoding device which decodes a video may stop the decoding upon detection of the error. However, when the decoding is stopped, a user who is a viewer of the video cannot view the video including the error.
To prevent this, the video decoding device performs processing called error concealment intended to continue decoding in such a manner that the error is concealed as much as possible so as not to stop the decoding. An example of representative error concealment techniques is a method of using a motion vector of a nearby macroblock instead of Using a motion vector of a current macroblock to be coded, when an error is detected in the motion vector of the current macroblock.